<template>
    <div class="wrapper">

        <!-- header部分 -->
        <header>
            <a href="javascript:history.back();" class="back-button">
                <i class="fa fa-arrow-left"></i> 返回
            </a>
            <p>修改密码</p>
        </header>

        <!-- 表单部分 -->
        <ul class="form-box">
            <li>
                <div class="title">
                    手机号码：
                </div>
                <div class="content">
                    <p class="userId">{{ user.userId }}</p>
                </div>
            </li>
            <li>
                <div class="title">
                    旧密码：
                </div>
                <div class="content">
                    <input type="password" v-model="oldPassword" placeholder="请输入旧密码">
                </div>
            </li>
            <li>
                <div class="title">
                    新密码：
                </div>
                <div class="content">
                    <PasswordStrength v-model="user.newPass" />
                </div>
            </li>
            <li>
                <div class="title">
                    用户昵称：
                </div>
                <div class="content">
                    <p class="userName">{{ user.userName }}</p>
                </div>
            </li>
        </ul>

        <div class="button-login">
            <button @click="toCheck">确认修改</button>
        </div>
        <div style="height: 0.1vw;"></div>
        <CustomAlert ref="customAlert" />
        <!-- 底部菜单部分 -->
        <Footer></Footer>
    </div>
</template>

<script>
import Footer from '../components/Footer.vue';
import PasswordStrength from '../components/PasswordStrength.vue';
import CustomAlert from '../components/CustomAlert.vue';

export default {
    name: 'EditUserPassword',
    data() {
        return {
            user: {
                userId: '',
                password: '',
                userName: '',
                userSex: 1,
                newPass: ''
            },
            oldPassword: '',
        }
    },
    created() {
        this.user = this.$getSessionStorage('user');
    },
    methods: {
        navigateTo(url) {
            // 导航到指定页面
            window.location.href = url;
        },
        formatSex(sex) {
            if (sex === 1) {
                return '男';
            } else if (sex === 0) {
                return '女';
            }
            return '未知'; // 如果性别数据不是 1 或 0，可以返回一个默认值
        },
        toCheck() {
            if (this.user.newPass == '') {
                this.$refs.customAlert.showAlert('密码不能为空！');
                return;
            }
            if (this.user.password == this.user.newPass) {
                this.$refs.customAlert.showAlert('新密码不能与旧密码相同！');
                return;
            }
            this.$axios.get(`Users/userId/${this.user.userId}/password/${this.oldPassword}`)
                .then(response => {
                    console.log('返回', response.data);

                    if (response.data != null) {
                        //修改密码
                        this.$axios.put(`Users/userId/${this.user.userId}/password/${this.oldPassword}/newPass/${this.user.newPass}`)
                            .then(response => {
                                console.log('xiug', response.data);
                                if (response.data == 1) {
                                    this.$removeSessionStorage('user');
                                    this.$removeLocalStorage('avatarUrl');
                                    if (confirm('修改成功，请重新登录！')) {
                                        this.$removeSessionStorage('user');
                                        this.$refs.customAlert.showAlert('账户已退出！', '/myPage');
                                        //this.$router.push({ path: '/myPage' });
                                    }
                                } else {
                                    this.$refs.customAlert.showAlert('修改密码失败！', '/setting');
                                    //this.$router.push({ path: '/setting' })
                                }
                            }).catch(error => {
                                console.error(error);
                            });
                    } else {
                        this.$refs.customAlert.showAlert('旧密码错误！');
                    }
                }).catch(error => {
                    console.error(error);
                });
        }
    },
    components: {
        Footer,
        PasswordStrength,
        CustomAlert
    }
}
</script>

<style scoped>
/****************** 总容器 ******************/
.wrapper {
    width: 100%;
    height: 100%;
}

/****************** header部分 ******************/
.wrapper header {
    width: 100%;
    height: 12vw;
    background-color: #0097FF;
    color: #fff;
    font-size: 4.8vw;

    position: fixed;
    left: 0;
    top: 0;
    z-index: 1000;

    display: flex;
    justify-content: center;
    align-items: center;
}

.back-button {
    position: absolute;
    top: 3.5vw;
    /* 使用相对单位 */
    left: 2.5vw;
    /* 使用相对单位 */
    font-size: 4vw;
    /* 使用相对单位 */
    text-decoration: none;
    color: white;
    display: flex;
    align-items: center;
}

.back-button i {
    margin-right: 1vw;
    /* 使用相对单位 */
}

/* 针对大屏幕 (如 iPad) 的媒体查询 */
@media (min-width: 768px) {
    .wrapper header {
        height: 8vh;
        /* 使用相对高度单位 */
        font-size: 3vh;
    }

    .back-button {
        position: absolute;
        top: 3.5vw;
        /* 使用相对单位 */
        left: 2.5vw;
        /* 使用相对单位 */
        font-size: 4vw;
        /* 使用相对单位 */
        text-decoration: none;
        color: white;
        display: flex;
        align-items: center;
    }

    .back-button i {
        margin-right: 1vw;
        /* 使用相对单位 */
    }

    /* 针对大屏幕 (如 iPad) 的媒体查询 */
    @media (min-width: 768px) {
        .wrapper header {
            height: 8vh;
            /* 使用相对高度单位 */
            font-size: 3vh;
        }

        .back-button {
            top: 2.5vh;
            /* 使用相对高度单位 */
            left: 2vh;
            font-size: 2.5vh;
            /* 相对大小单位 */
        }

        .back-button i {
            margin-right: 0.5vh;
        }
    }

    /****************** 表单部分 ******************/
    .wrapper .form-box {
        width: 100%;
        margin-top: 12vw;
    }

    .back-button i {
        margin-right: 0.5vh;
    }
}

/****************** 表单部分 ******************/
.wrapper .form-box {
    width: 100%;
    margin-top: 12vw;
}

.wrapper .form-box li {
    box-sizing: border-box;
    padding: 4vw 3vw 0 3vw;
    display: flex;
    align-items: center;
}

.wrapper .form-box li .title {
    flex: 0 0 18vw;
    font-size: 3vw;
    font-weight: 700;
    color: #666;
}

.wrapper .form-box li .content {
    flex: 1;
}

.wrapper .form-box li .content input {
    border: none;
    outline: none;
    width: 100%;
    height: 4vw;
    font-size: 3vw;
}

.wrapper .button-login {
    width: 100%;
    box-sizing: border-box;
    padding: 4vw 3vw 0 3vw;
}

.wrapper .button-login button {
    width: 100%;
    height: 10vw;
    font-size: 3.8vw;
    font-weight: 700;
    color: #fff;
    background-color: #38CA73;
    border-radius: 4px;

    border: none;
    outline: none;
}

.wrapper .content el-button {
    width: 100%;
    height: 4.7vw;
    font-size: 3vw;
    font-weight: 700;
    color: #8f8b8b;
    background-color: #fefefe;
    border-radius: 4px;
    border: none;
    outline: none;
}

.wrapper .button-register {
    width: 100%;
    box-sizing: border-box;
    padding: 4vw 3vw 0 3vw;
}

.wrapper .button-register button {
    width: 100%;
    height: 10vw;
    font-size: 3.8vw;
    font-weight: 700;
    color: #666;
    background-color: #EEE;
    border-radius: 4px;

    border: none;
    outline: none;
    border: solid 1px #DDD;
}
</style>